The present invention relates to a data transmission circuit, and a data transmission method. In particular, the present invention relates to a data mission circuit, and a data transmission method, which are used for controlling a transmission of reply data responding to a read request between processing units.
Generally, when data are transmitted between processing units, a header including information on destination and the like is added to the data to be transmitted. Then, the data are collectively transmitted as a packet. When the packet transmitted, the packet is divided into a plurality of flits. Then each of the flits is transmitted in synchronism with a clock cycle. Here, a flit is a minimum unit of data which can be transmitted in one clock cycle. Typically, a size of a flit ranges approximately from 8 bits to 64 bits.
When a maximum data length which can be handled by a processing unit A (for example, 128 Bytes) is smaller than that of a processing unit B (for example, 4 kBytes), the data transmission circuit located therebetween typically performs as follows. When data are transmitted from the processing unit B to the processing unit A, the data transmission circuit divides the data into pieces each having a data length which can be handled by the processing unit A. On the other hand, when data are transmitted from the processing unit A to the processing unit B, the data transmission circuit merges the data, and transmits the merged data to the processing unit B. Descriptions will be given below of a case where a read request is issued from the processing unit B to the processing unit A, and then reply data is transmitted from the processing unit A in response to the read request, for example. The data transmission circuit divides a packet of data including information on the read request to transmit the packet to the processing unit A. Moreover, the data transmission circuit merges all the reply data corresponding to the read request, or merges part of the reply data which part includes a predetermined number of flit. Then the data transmission circuit transmits the merged data to the processing unit B. In the data transmission circuit of a conventional technique, the number of flit to be merged is determined in advance. Accordingly, even when a transmission path to the processing unit B is available, it is necessary to wait for completion of the merging of the reply data. For this reason, the transmission path cannot be efficiently used, and thereby the throughput is lowered.
Examples relating to a packet transmission method are disclosed in the following conventional techniques.
In Japanese Patent Application Laid-Open No. 01-081551, a packet transmission method using a transmission apparatus and a receiving apparatus is described as follows. In the packet transmission method, the transmission apparatus combines a plurality of data in a range that a total length of the combined data is not exceeding a packet length determined in advance, and transmits the combined data as a packet. Information on a length of the data is added to each packet. The receiving apparatus separates data included in the packet by using the information added to the packet. Moreover, in Japanese Patent Application Laid-Open No. 59-081947, a packet transmission method, in which a certain packet length is previously stored in a packet switching center, is described. In the packet transmission method, when a length of data is shorter than the packet length stored in a packet switching center, the data are combined to generate a packet having a data length equivalent to the packet length stored in the packet switching center. Then the packet is transmitted. In the packet transmission method respectively described in the above patent application, however, the transmission needs to be suspended until generated data reaches a predetermined packet length. Accordingly, the transmission path is not efficiently used, and thereby the throughput is lowered.
In Japanese Patent Application Laid-Open No. 2004-032283, a transmission apparatus and a receiving apparatus are described as follows. The transmission apparatus transmits a transmission packet having an error tolerance based on a receiving condition of the transmission packet and a condition of a transmission path. From the transmission apparatus, the receiving apparatus obtains information including receiving intervals, a number of discarded packet, throughputs and the like, on the transmission packet. The receiving apparatus then transmits the obtained results to the transmission apparatus. On the basis of the obtained results, the transmission apparatus determines an interleave length or a payload length of packet to be transmitted therefrom. As described above, the transmission apparatus described in this patent application, transmits a transmission packet in accordance with the receiving condition and the condition of the transmission path. This makes it possible to reduce the processing load of the receiving apparatus. The transmission apparatus described in this patent application document, reads data having a length equivalent to one frame, and divides the data by the payload length according to the result of determination made by a parameter determination unit. Then the transmission apparatus transmits the divided data. This improves the transfer efficiency. However, since the data is divided, and thus is transferred, a number of header to be added to the data to be transmitted increases. For this reason, the total amount of information included in the data to be transmitted increases, and thus the throughput is lowered. Moreover, depending on the timings of reading and transmission of data, the transmission of data may need to be suspended.
In Japanese Patent Application Laid-Open No. 11-234347, a buffer management method is described. In this method, the efficiency of data transmission is improved by avoiding the state of waiting for transmission due to a shortage of the available capacity of a receiving buffer. A data transmission apparatus described in this patent application, transmits information on a size of data to be transmitted together with a signal for checking the available capacity of the receiving buffer, to a receiving apparatus. According to the response from the data receiving apparatus, in a case where the size of the available capacity is equal to or larger than the size of the data to be transmitted, the transmission apparatus collectively transmits the data, when the size of the available capacity is smaller than the size of the data to be transmitted, the transmission apparatus divides the data into pieces each having a size matching the available capacity. Then the transmission apparatus transmits the pieces of data. However, since the data is divided, and thus transmitted, a number of header to be added to the data increases. Accordingly, a total amount of information included in the data increases, and thereby the throughput is lowered.